home *** CD-ROM | disk | FTP | other *** search
/ Aminet 5 / Aminet 5 - March 1995.iso / Aminet / misc / amag / AM9409_2.lha / ARexxManager / ArexxManager.script / ResourceManager2.1 < prev    next >
Text File  |  1994-07-28  |  11KB  |  305 lines

  1. /* ArexxResourceManager 2.1 programmed by Karsten Wysocki 01.03.94 */
  2.  
  3. call addlib("rexxsupport.library",0,-30,0)
  4. call addlib("apig.library",0,-30,0)
  5. call SET_APIG_GLOBALS()
  6.  
  7. portname = "ResourceManager"
  8. portlist = Showlist('p')
  9. if find(portlist,portname) > 0 then exit
  10. p = openport(portname)
  11.  
  12. scr = LOCKPUBSCREEN("Workbench")
  13. scrvinfo = GETVISUALINFO(scr)
  14. scrfont = GETVALUE(scr,40,4,'p')
  15.  
  16. glistpointer = ALLOCVEC(4,MEMF_CLEAR)
  17. conxgad = CREATECONTEXT(glistpointer)
  18. previousgadget = conxgad
  19.  
  20. filereq = "freq = ALLOCFILEREQUEST();
  21.            filename = REQUESTFILE(freq,0,0,hail,'LIBS:','',0,0,
  22.                                   null(),-10,-2,200,211,'22200a22'x);
  23.            call FREEFILEREQUEST(freq)"
  24.  
  25.  
  26. showlist= "do forever;
  27.               pos = index(list,' ');
  28.               if pos = 0 then leave;
  29.               list = insert('0a'x,list,pos);
  30.               list = delstr(list,pos,1);
  31.            end;
  32.            call open('list','RAM:List','W');
  33.            call writeln('list',list);
  34.            call close('list');
  35.            list = '';
  36.            if wtext = 'Show Libs';
  37.               then do;
  38.                       ADDRESS COMMAND 'copy ram:list ram:list1';
  39.                    end;
  40.               else do;
  41.                       ADDRESS COMMAND 'sort ram:list ram:list1';
  42.                    end;
  43.            line      = 0;
  44.            linemax   = 16;
  45.            page      = 1;
  46.            lastpage  = 0;
  47.            list.page = '';
  48.            call open('list1','RAM:List1','R');
  49.            do until eof('list1');
  50.               if line = linemax;
  51.                  then do;
  52.                          line = 0;
  53.                          page = page + 1;
  54.                          list.page = '';
  55.                       end;
  56.               listln = readln('list1');
  57.               list.page = list.page || listln || '0a'x;
  58.               line = line + 1;
  59.            end;
  60.            call close('list1');
  61.            lastpage = page;
  62.            page = 1;
  63.            if length(list.lastpage) = 1;
  64.               then do;
  65.                      list.lastpage = '';
  66.                      lastpage = lastpage - 1;
  67.                    end;
  68.            if lastpage < 2;
  69.               then do;
  70.                      list.page = left(list.page,length(list.page)-1);
  71.                      if line = 0 then list.page = left(list.page,length(list.page)-1);
  72.                      rtext = hline || '0a0a'x || list.page;
  73.                      x = easyrequest(w1,wtext,rtext,'OK');
  74.                    end;
  75.               else do;
  76.                      do forever;
  77.                        list = left(list.page,length(list.page)-1);
  78.                        if page = lastpage then list = left(list,length(list)-1);
  79.                        rtext = hline  || '    Page ' || page || ' of ' || lastpage
  80.                                || '0a0a'x || list;
  81.                        x = easyrequest(w1,wtext,rtext,'OK|Prev|Next');
  82.                        if x = 1 then leave;
  83.                        if x = 2 & page > 1        then page = page - 1;
  84.                        if x = 0 & page < lastpage then page = page + 1;
  85.                      end;
  86.                    end;"
  87.  
  88. makegadget = "call SETNEWGADGET(newgadx,scrvinfo,scrfont,lft,top,wdt,hgt
  89.                                 ,txt,PLACETEXT_IN,gnr,null());
  90.               previousgadget = CREATEGADGET(BUTTON_KIND,previousgadget,
  91.                                             newgadx,TAG_DONE,0)"
  92.  
  93.  
  94. traceon = 10
  95. traceoff = 15
  96. addlib = 20
  97. remlib = 25
  98. showlibs = 30
  99. showclips = 35
  100. showports = 40
  101. showfiles = 45
  102. showready = 50
  103. showwaiting = 55
  104.  
  105. lft = 6
  106. top = 2
  107. wdt = 75
  108. hgt = 14
  109. gnr = traceon
  110. txt = "Trace ON"
  111. newgadx = MAKENEWGADGET(scrvinfo,scrfont,lft,top,wdt,hgt,txt ,
  112.                         ,PLACETEXT_IN,traceon,null())
  113. previousgadget = CREATEGADGET(BUTTON_KIND,previousgadget,newgadx,TAG_DONE,0)
  114.  
  115. lft = 85
  116. wdt = 73
  117. gnr = addlib
  118. txt = "Add Lib"
  119. interpret makegadget
  120.  
  121. lft = 161
  122. gnr = showlibs
  123. txt = "Libs"
  124. interpret makegadget
  125.  
  126. lft = 237
  127. gnr = showports
  128. txt = "Ports"
  129. interpret makegadget
  130.  
  131. lft = 313
  132. gnr = showready
  133. txt = "Ready"
  134. interpret makegadget
  135.  
  136. lft = 6
  137. top = 18
  138. wdt = 75
  139. hgt = 14
  140. gnr = traceoff
  141. txt = "Trace OFF"
  142. interpret makegadget
  143.  
  144. lft = 85
  145. wdt = 73
  146. gnr = remlib
  147. txt = "Rem Lib"
  148. interpret makegadget
  149.  
  150. lft = 161
  151. gnr = showclips
  152. txt = "Clips"
  153. interpret makegadget
  154.  
  155. lft = 237
  156. gnr = showfiles
  157. txt = "Files"
  158. interpret makegadget
  159.  
  160. lft = 313
  161. gnr = showwaiting
  162. txt = "Waiting"
  163. interpret makegadget
  164.  
  165. wintitle = "ResourceManager2.1"
  166. winidcmp = CLOSEWINDOW+GADGETUP+GADGETDOWN+MOUSEMOVE
  167. winflags = WINDOWCLOSE+WINDOWDRAG+WINDOWDEPTH+GIMMEZEROZERO+ACTIVATE
  168.  
  169. w1  = OPENWINDOW(portname,200,9,400,47,2,4,winidcmp,winflags,wintitle,scr,0,null(),null(),conxgad)
  170.  
  171. call GT_REFRESHWINDOW(w1,null())
  172. rpw1 = GETWINDOWRASTPORT(w1)
  173.  
  174. exitme = 0
  175. do forever
  176.    x = waitpkt(portname)
  177.    do forever
  178.       msg = getpkt(portname)
  179.       if msg = '0000 0000'x then leave
  180.       msgclass  = getarg(msg,0)
  181.       if msgclass = DIE then exitme = 1
  182.       if msgclass = CLOSEWINDOW then exitme = 1
  183.       if msgclass = GADGETUP
  184.          then do
  185.             gadid  = getarg(msg,9)
  186.             select
  187.                  when gadid = traceon
  188.                       then do
  189.                             ADDRESS COMMAND 'SYS:REXXC/TCO'
  190.                            end
  191.                  when gadid = traceoff
  192.                       then do
  193.                             ADDRESS COMMAND 'SYS:REXXC/TCC'
  194.                            end
  195.                  when gadid = addlib
  196.                       then do
  197.                             filename = ""
  198.                             hail = "Select Arexx-library to add"
  199.                             interpret filereq
  200.                             lsign = substr(filename,length(filename),1)
  201.                             if filename ~= null() & lsign ~= "/" & lsign ~= ":"
  202.                                then do
  203.                                      devname = left(filename,5)
  204.                                      if devname = "LIBS:" then
  205.                                         filename = right(filename,length(filename)-5)
  206.                                      upfilename = upper(filename)
  207.                                      liblist = upper(show(l))
  208.                                      if find(liblist,upfilename) > 0
  209.                                         then do
  210.                                               wtext = "Cannot add Lib!!!   "
  211.                                               gtext = " OK "
  212.                                               rtext = "Lib is already added:" || '0a0a'x || filename
  213.                                               x = easyrequest(w1,wtext,rtext,gtext)
  214.                                              end
  215.                                         else do
  216.                                               call addlib(filename,0,-30,0)
  217.                                              end
  218.                                     end
  219.                            end
  220.                  when gadid = remlib
  221.                       then do
  222.                             filename = ""
  223.                             hail = "Select Arexx-library to remove"
  224.                             interpret filereq
  225.                             lsign = substr(filename,length(filename),1)
  226.                             if filename ~= null() & lsign ~= "/" & lsign ~= ":"
  227.                                then do
  228.                                      devname = left(filename,5)
  229.                                      if devname = "LIBS:" then
  230.                                         filename = right(filename,length(filename)-5)
  231.                                      upfilename = upper(filename)
  232.                                      liblist = upper(show(l))
  233.                                      if upfilename = "APIG.LIBRARY" | upfilename = "REXXSUPPORT.LIBRARY" | find(liblist,upfilename) = 0
  234.                                         then do
  235.                                               wtext = "Cannot remove this lib!!!"
  236.                                               gtext = " OK "
  237.                                               rtext = "Lib in use or not added:" || '0a0a'x || filename
  238.                                               x = easyrequest(w1,wtext,rtext,gtext)
  239.                                              end
  240.                                         else do
  241.                                               call remlib(filename)
  242.                                              end
  243.                                     end
  244.                            end
  245.                  when gadid = showlibs
  246.                       then do
  247.                             list = show(l)
  248.                             wtext = "Show Libs"
  249.                             hline = "Actually added libs" || '0a'x || "in order of search:"
  250.                             interpret showlist
  251.                            end
  252.                  when gadid = showclips
  253.                       then do
  254.                             list = show(c)
  255.                             wtext = "Show Clips"
  256.                             hline = "Actually Clip-List:"
  257.                             interpret showlist
  258.                            end
  259.                  when gadid = showports
  260.                       then do
  261.                             list = showlist('p')
  262.                             wtext = "Show Ports"
  263.                             hline = "Available Ports:"
  264.                             interpret showlist
  265.                            end
  266.                  when gadid = showfiles
  267.                       then do
  268.                             list = show('f')
  269.                             wtext = "Show Files"
  270.                             hline = "Actually opened logical files:"
  271.                             interpret showlist
  272.                            end
  273.                  when gadid = showready
  274.                       then do
  275.                             list = showlist('r')
  276.                             wtext = "Show Ready"
  277.                             hline = "Ready:"
  278.                             interpret showlist
  279.                            end
  280.                  when gadid = showwaiting
  281.                       then do
  282.                             list = showlist('w')
  283.                             wtext = "Show Waiting"
  284.                             hline = "Waiting:"
  285.                             interpret showlist
  286.                            end
  287.                  otherwise nop
  288.             end
  289.          end
  290.       x = reply(msg,0)
  291.    end
  292.    if exitme = 1 then leave
  293. end
  294.  
  295. call CLOSEWINDOW(w1)
  296. call UNLOCKPUBSCREEN(null(),scr)
  297. call FREEVISUALINFO(scrvinfo)
  298. call FREEGADGETS(conxgad)
  299. call FREETHIS(newgadx)
  300. call FREEVEC(glistpointer)
  301.  
  302. ADDRESS COMMAND 'SYS:REXXC/TCC'
  303.  
  304. exit
  305.